// 代码暂时有问题，后面学会来再写

#include <GL/glut.h>

typedef GLint vertex3[3];
vertex3 pt[8] = { {0, 0, 0}, {0, 1, 0}, {1, 0, 0}, {1, 1, 0}, {0, 0, 1}, {0, 1, 1}, {1, 0, 1}, {1, 1, 1} };

void init()
{
	glClearColor(1.0, 1.0, 1.0, 1.0);	// 设置窗口显示颜色为白色
	glMatrixMode(GL_PROJECTION);		// 设置放映参数
	gluOrtho2D(0.0, 2, 0.0, 2);
}

void quad(GLint n1, GLint n2, GLint n3, GLint n4)
{
	glBegin(GL_QUADS);
	glVertex3iv(pt[n1]);
	glVertex3iv(pt[n2]);
	glVertex3iv(pt[n3]);
	glVertex3iv(pt[n4]);
	glEnd();
}

void myDisplay()
{
	glClear(GL_COLOR_BUFFER_BIT);		// 清空窗口显示

	glColor3f(0.0, 0.0, 0.0);
	
	quad(6, 2, 3, 7);
	quad(5, 1, 0, 4);
	quad(7, 3, 1, 5);
	quad(4, 0, 2, 6);
	quad(2, 0, 1, 3);
	quad(7, 5, 4, 6);


	glFlush();

}


void main(int argc, char** argv)
{
	glutInit(&argc, argv);							// 初始化glut（可不写默认）
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);	// 显示模式初始化 单缓冲模式 RGB显示模式
	glutInitWindowPosition(50, 100);				// 窗口距离左和上的距离（可不写默认）
	glutInitWindowSize(200, 200);					// 窗口的宽和高（可不写默认）
	glutCreateWindow("第一个OpenGl程序");			// 窗口名称

	init();											// 执行初始化程序
	glutDisplayFunc(&myDisplay);					// 自定义函数绘图
	glutMainLoop();									// 消息循环响应
}
